package abg.core.service.wx.impl;


import abg.core.common.cache.Cache;
import abg.core.common.util.HttpKit;
import abg.core.common.util.StringKit;
import abg.core.domain.sys.config.WxConfig;
import abg.core.domain.wx.WxConLoginType;
import abg.core.service.wx.WxService;
import com.alibaba.fastjson2.JSONObject;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

/**
 * 微信服务相关
 */
@Slf4j
@Service
public class WxServiceImpl implements WxService {

    @Resource
    private Cache<String> cache;
    @Resource
    private WxConfig wxConfig;

    /**
     * 通过微信返回code 联合登录信息
     *
     * @param wxCode 微信code
     * @see WxConLoginType  自定义枚举类型 type
     */
    public JSONObject getConnectLoginParam(String wxCode, WxConLoginType type) {
        String url = StringKit.format("{}?appid={}&secret={}&js_code={}&grant_type={}",
                wxConfig.connectLoginUrl(), wxConfig.connectLoginAppId(type), wxConfig.connectLoginAppSecret(type), wxCode, "authorization_code");
        String content = HttpKit.doGet(url);
        return JSONObject.parseObject(content);
    }


}
